/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ControladoresUI;

import Entidades.Asignacionseccioncurso;
import Entidades.Catedratico;
import Entidades.Curso;
import Entidades.Gradoacademico;
import Entidades.Usuario;
import Ingresos.ICatedratico;
import ManagersUI.CatedraticoModificarManager;
import Modelos.CursosActualesModel;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.ComboBox;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javax.swing.JOptionPane;

/**
 *
 * @author Carlos Andy T. Tiniguar <Tini0106Andy@gmail.com>
 */
public class CatedraticoModificarController {
    Usuario usuario; 
    Catedratico registro;
    CatedraticoModificarManager catedraticoModificarManager;
    @FXML private TextField txtNombres;
    @FXML private TextField txtApellidos;
    @FXML private TextField txtTelefono;
    @FXML private TextField txtCreditos;
    @FXML ComboBox cmbCatedratico;
    @FXML private TextField txtSueldo;
    @FXML private TextField txtNoCatedratico;
    @FXML private ComboBox cmbGradoAcademico;
    @FXML private TableView<Curso> tblCursos;    
    @FXML private TableColumn<Curso, String> nombreColumna;
    @FXML private TableColumn<Curso, Integer> creditosPracticosColumna;
    @FXML private TableColumn<Curso, Integer> creditosTeoricosColumna;
     @FXML private TableColumn<Curso, Integer> periodosColumna;
     @FXML private TableColumn<Curso, Boolean> seccionpracticaColumna;
     @FXML private TableColumn<Curso, Boolean> extraordinarioColumna;
     
    public void initialize() {}
  
    public void initManager(final CatedraticoModificarManager catedraticoModificarManager,Usuario usuario,Catedratico registro) {
        this.catedraticoModificarManager = catedraticoModificarManager;
        this.usuario = usuario;
        this.registro = registro;
        cargarCatedratico();
        cargarDatos();
        cargarGradoAcademico();
    }
    public void cargarDatos(){
        this.txtNoCatedratico.setText(Integer.toString(this.registro.getNumeroCatedratico()));;
        this.txtNombres.setText(this.registro.getNombre());    
        this.txtApellidos.setText(this.registro.getApellidos());
        this.txtTelefono.setText(this.registro.getTelefono());
        this.txtCreditos.setText(Short.toString(this.registro.getCreditos()));
        
        this.txtSueldo.setText(Float.toString(this.registro.getSueldo()));
        this.cmbGradoAcademico.setValue(this.registro.getGradoAcademicoidGradoAcademico());
        this.cmbCatedratico.setValue(this.registro);
        cargarTablaCursoActual();
        
    }
    public void cargarCatedratico(){
        this.cmbCatedratico.setPromptText("Catedratico");
         ICatedratico manejo = new ICatedratico();
        this.cmbCatedratico.getItems().clear();
        this.cmbCatedratico.getItems().addAll(manejo.mostrarTodo());
       //this.cmbCatedratico
    }
    public void cargarGradoAcademico(){
        this.cmbGradoAcademico.setPromptText("Grado Academico");
         ICatedratico manejo = new ICatedratico(); ///cambiar a grado academico
        this.cmbGradoAcademico.getItems().clear();
        this.cmbGradoAcademico.getItems().addAll(manejo.mostrarTodo());
       //this.cmbCatedratico
    } 
    @FXML
    private void BuscarCursoActual(ActionEvent event){
        this.registro =(Catedratico) cmbCatedratico.getValue();
        cargarDatos();
        cargarTablaCursoActual();
    }
    @FXML
    private void modificarCatedratico(ActionEvent event){
        ICatedratico manejo = new ICatedratico();
            this.registro.setNombre(txtNombres.getText());
            this.registro.setApellidos(this.txtApellidos.getText());
            this.registro.setTelefono(this.txtTelefono.getText());
            this.registro.setCreditos(Short.parseShort(this.txtCreditos.getText()));
            this.registro.setNumeroCatedratico(Integer.parseInt(this.txtNoCatedratico.getText()));
            this.registro.setSueldo(Float.parseFloat(this.txtSueldo.getText()));
            this.registro.setGradoAcademicoidGradoAcademico((Gradoacademico)this.cmbGradoAcademico.getValue());
            manejo.modificar(registro);
             JOptionPane.showMessageDialog(null, "Se ha modificado el catedratico.");
             catedraticoModificarManager.showPnlCatedraticoInicio(usuario);
    }
    @FXML
    private void RegresarInicio(ActionEvent event){
      catedraticoModificarManager.showPnlCatedraticoInicio(usuario);
    }
     @FXML
    private void MostarCursoPosibles(ActionEvent event){
      catedraticoModificarManager.showPnlCursosPosibles(usuario,registro);
    } 
     @FXML
    private void MostrarHorariosDisponibles(ActionEvent event){
      catedraticoModificarManager.showPnlDisponibilidadHorario(usuario,registro);
    }
     public void cargarTablaCursoActual(){
      CursosActualesModel curosactualModel = new CursosActualesModel(null,registro.getNumeroCatedratico()); 
       
        tblCursos.setItems(curosactualModel.getPersonData());
        nombreColumna.setCellValueFactory(new PropertyValueFactory<Curso, String>("nombre"));
         creditosPracticosColumna.setCellValueFactory(new PropertyValueFactory<Curso, Integer>("creditospracticos"));
          creditosTeoricosColumna.setCellValueFactory(new PropertyValueFactory<Curso, Integer>("creditosteoricos"));
        periodosColumna.setCellValueFactory(new PropertyValueFactory<Curso, Integer>("periodosSemanales"));
         seccionpracticaColumna.setCellValueFactory(new PropertyValueFactory<Curso, Boolean>("seccionPractica"));
         extraordinarioColumna.setCellValueFactory(new PropertyValueFactory<Curso, Boolean>("extraordinario"));
     }
     
}
